<?php

/*
 * Formulaire d'identification
 */

class Application_Form_Article extends Zend_Form
{
	private $base_url;
	
	/* Surcharge du constructeur */
	public function __construct($options = null, $base_url){		
		$this->base_url = $base_url;

		parent::__construct($options);
	}
	
	public function init()
	{
		/* Form Elements & Other Definitions Here ... */
		$this->setName('article')
			 ->setAction($this->base_url.'/index') // ajouter Helper pour baseUrl plus helper de vue
			 ->setDisableLoadDefaultDecorators(true)
			 ->addDecorator('FormElements')
			 ->addDecorator('Form')
			 ->setAttrib('id','frm_article');
			 
		$options = array(
			'title' => 'Nom',
			'name' => 'nom_article'
		);
		$nom_article = new Zend_Form_Element_Text($options);
		$nom_article->setLabel('Nom')
			->setRequired(true)
			->addFilter('StringTrim');
		
		
		
		$options = array(
			'title' => 'Référence',
			'name' => 'reference_article'
		);
		$reference = new Zend_Form_Element_Text($options);
		$reference->setLabel('Référence')
			->addFilter('StringTrim');

		$options = array(
			'title' => 'Libellé',
			'name' => 'libelle_article'
		);
		$libelle_article = new Zend_Form_Element_Text($options);
		$libelle_article->setLabel('Libellé')
			->setRequired(true)
			->addFilter('StringTrim');

		$options = array(
			'title' => 'Catégorie',
			'name' => 'id_categorie'
		);
		$id_categorie = new Zend_Form_Element_Select($options);
		$adapter_categorie = new Application_Model_DbTable_Categorie();
		$id_categorie->setLabel('Catégorie')
					->setMultiOptions($adapter_categorie->get_liste_categorie() )
		;
		

		$options = array(
			'title' => 'Prix HT',
			'name' => 'prix_ht'
		);
		$prix_ht = new Zend_Form_Element_Text($options);
		$prix_ht->setLabel('Prix HT')
			->setRequired(true)
			->addFilter('StringTrim');	

		$options = array(
			'title' => 'Taux TVA',
			'name' => 'taux_tva'
		);
		$adapter_tva = new Application_Model_DbTable_Tva();
		$taux_tva = new Zend_Form_Element_Select($options);
		$taux_tva->setLabel('Taux TVA')
			->setMultiOptions($adapter_tva->get_liste_tva() )
			->setRequired(true);

		$options = array(
			'title' => 'Prix TTC',
			'name' => 'prix_ttc'
		);
		$prix_ttc = new Zend_Form_Element_Text($options);
		$prix_ttc->setLabel('Prix TTC')
			->setRequired(true)
			->addFilter('StringTrim');

		$options = array(
			'title' => 'Actif',
			'name' => 'actif'
		);
		$actif = new Zend_Form_Element_Checkbox ($options);
		$actif->setLabel('Actif')
				->setValue(1);
		
		/* 
		$options = array(
			'title' => 'add_modif',
			'name' => 'add_modif'
		);
		$actif = new Zend_Form_Element_Hidden ($options); //renseigné par la vue avec la valeur add ou modif : $("#add_modif").val("add");
		//$actif->setLabel('add_modif');
		*/
		
		
		$submit = new Zend_Form_Element_Button('submit');
		$submit->setAttrib('id', 'submitbutton')
				->setAttrib('class', 'submit')
				->setLabel('Valider');

		$this->addElements(array($nom_article, $reference, $libelle_article, $id_categorie,
								 $prix_ht, $taux_tva, $prix_ttc, $actif, $submit));
		
		//On désactive les décorateurs d'élements type td,dd, etc...
		// Jbd - 21/06/2012 : Je commente car on a désormais un render
		/*foreach($this->getElements() as $element) 
		{
			if(method_exists($element->getDecorator('Label'), 'setTag')){
				// element->removeDecorator('HtmlTag');
				// $element->removeDecorator('DtDdWrapper');
				$element->getDecorator('Label')->setTag(null);
			}
		}*/
	}
	
	
	
	public function render(Zend_View_Interface $view=null){
		$liste_elements = $this->getElements();
		

		$html="<form id='".$this->getAttrib('id')."' action=\"".$this->getAction()."\" method='".$this->getMethod()."'>

					<table class=''>
						<tbody>";
							foreach($liste_elements as $element){	
								if($element instanceof Zend_Form_Element_Submit){
									//$element_reset=$this->getElement('form_user_reset');
									$html.="<tr>
												<td colspan='2' style='text-align:center;'>".$element->renderViewHelper()."</td>
											</tr>";
								}else{
									$html.="<tr>
												<td class=''>".$element->getLabel()."</td><td class=''>".$element->renderViewHelper()."</td>
											</tr>";
									if($element->renderErrors()!=""){
										$html.="<tr class='errors'>
													<td colspan='2' style='color:red'>".$element->renderErrors()."</td>
												</tr>";
									}
								}
							}
			$html.="	</tbody>
					</table>
				

				</form>";
			
		
			
	   $this->_setIsRendered();
	   return $html;
	}
	
	
}
?>

